// heads/Node.h
#ifndef NODE_H
#define NODE_H

#include <vector>
#include <utility> // For std::pair

// It's a good practice to put enums in their own header file if they are used by multiple classes
#include "State.h"

class Node {
public:
    std::pair<int, int> position; // Node position as a 2D coordinate
    State state; // Node state
    std::vector<Node*> neighbors; // Pointers to neighboring Nodes

    Node(int x, int y, State st);

    void add_neighbor(Node* neighbor);
    void display();
      std::pair<int, int> get_position();
      State get_state();
      
};

#endif // NODE_H
